home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 551-575 / disk_562 / intuisup / editor / source.lzh / defines.h next >
C/C++ Source or Header  |  1991-10-20  |  7KB  |  248 lines

  1.         /*************************************
  2.          *                                   *
  3.          *            Editor v1.0            *
  4.          *   by Torsten Jürgeleit in 07/91   *
  5.          *                                   *
  6.          *         Defines & structs         *
  7.          *                                   *
  8.          *************************************/
  9.  
  10.     /* Defines for defaults */
  11.  
  12. #define DEFAULT_PROJECT_NAME        "unnamed"
  13. #define DEFAULT_EDITOR_MODE        EDITOR_MODE_CREATE
  14. #define DEFAULT_SNAP_OFFSET        1
  15. #define DEFAULT_TEMPLATE_TYPE        TEMPLATE_TYPE_BUTTON
  16. #define DEFAULT_TEMPLATE_LIST_FLAGS    TEMPLATE_LIST_FLAG_RESIZING
  17. #define DEFAULT_LIST_MODE    LIST_MODE_EDIT
  18.  
  19.     /* Defines for windows */
  20.  
  21. #define EDIT_RENDER_INFO_FLAGS        (RENDER_INFO_FLAG_INNER_WINDOW | RENDER_INFO_FLAG_BACK_FILL)
  22. #define EDIT_OPEN_WINDOW_FLAGS        0
  23.  
  24. #define PROJECT_RENDER_INFO_FLAGS    0
  25. #define PROJECT_OPEN_WINDOW_FLAGS    0
  26.  
  27. #define EDITOR_WINDOW_LEFT        0
  28. #define EDITOR_WINDOW_TOP        0
  29. #define EDITOR_WINDOW_WIDTH        518
  30. #define EDITOR_WINDOW_HEIGHT        112
  31. #define EDITOR_WINDOW_TITLE        (UBYTE *)" Template Editor v1.0 "
  32. #define EDITOR_WINDOW_IDCMP        (CLOSEWINDOW | GADGET_IDCMP_FLAGS_ALL | MENUPICK)
  33. #define EDITOR_WINDOW_FLAGS        (WINDOWCLOSE | WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH | NOCAREREFRESH | ACTIVATE)
  34.  
  35. #define PROJECT_WINDOW_DETAIL_PEN    0
  36. #define PROJECT_WINDOW_BLOCK_PEN    1
  37. #define PROJECT_WINDOW_TITLE        (UBYTE *)NULL
  38. #define PROJECT_WINDOW_IDCMP        (MOUSEMOVE | MOUSEBUTTONS | NEWSIZE | GADGET_IDCMP_FLAGS_ALL)
  39. #define PROJECT_WINDOW_FLAGS        (WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING | SMART_REFRESH | RMBTRAP | REPORTMOUSE)
  40. #define PROJECT_WINDOW_MIN_WIDTH    100
  41. #define PROJECT_WINDOW_MIN_HEIGHT    20
  42.  
  43.     /* Defines */
  44.  
  45. #define MAX_PROJECT_NAME_LEN    (LONG_FSIZE + 1)
  46. #define MAX_TEMPLATE_NAME_LEN    30
  47. #define MAX_TEXT_LEN        40
  48.  
  49.     /* Defines for editor status */
  50.  
  51. #define EDITOR_STATUS_NORMAL        0
  52. #define EDITOR_STATUS_EOF        1
  53. #define EDITOR_STATUS_EOB        2
  54. #define EDITOR_STATUS_EDIT        3
  55. #define EDITOR_STATUS_WINDOW        4
  56. #define EDITOR_STATUS_NEW        5
  57. #define EDITOR_STATUS_LOAD        6
  58. #define EDITOR_STATUS_APPEND        7
  59. #define EDITOR_STATUS_SAVE        8
  60. #define EDITOR_STATUS_SAVE_C        9
  61. #define EDITOR_STATUS_ABOUT        10
  62. #define EDITOR_STATUS_QUIT        11
  63.  
  64.     /* Defines for editor error messages */
  65.  
  66. #define EDITOR_ERROR_NO_ARP        -1
  67. #define EDITOR_ERROR_NO_INTUISUP    -2
  68. #define EDITOR_ERROR_NO_DISKFONT    -3
  69. #define EDITOR_ERROR_NO_WINDOW        -4
  70. #define EDITOR_ERROR_OUT_OF_MEM        -5
  71. #define EDITOR_ERROR_OPEN_FAILED    -6
  72. #define EDITOR_ERROR_WRITE_FAILED    -7
  73. #define EDITOR_ERROR_READ_FAILED    -8
  74. #define EDITOR_ERROR_LINE_TOO_LONG    -9
  75. #define EDITOR_ERROR_NO_ARGUMENT    -10
  76. #define EDITOR_ERROR_END_WRONG_BLOCK    -11
  77.  
  78.     /* Defines for editor gadgets */
  79.  
  80. #define EDITOR_GADGET_TYPE        0
  81. #define EDITOR_GADGET_CREATE        1
  82. #define EDITOR_GADGET_MODIFY        2
  83. #define EDITOR_GADGET_CLONE        3
  84. #define EDITOR_GADGET_DELETE        4
  85. #define EDITOR_GADGET_EDIT        5
  86. #define EDITOR_GADGET_USE        6
  87. #define EDITOR_GADGET_TEMPLATES        7
  88.  
  89. #define EDITOR_MODE_CREATE    0
  90. #define EDITOR_MODE_MODIFY    1
  91. #define EDITOR_MODE_CLONE    2
  92. #define EDITOR_MODE_DELETE    3
  93. #define EDITOR_MODE_EDIT    4
  94. #define EDITOR_MODE_USE        5
  95.  
  96. #define MODIFY_MODE_MOVE    0
  97. #define MODIFY_MODE_RESIZE    1
  98.  
  99.     /* Defines for templates */
  100.  
  101. #define TEMPLATE_TYPE_BORDER    0
  102. #define TEMPLATE_TYPE_TEXT    1
  103. #define TEMPLATE_TYPE_BUTTON    2
  104. #define TEMPLATE_TYPE_CHECK    3
  105. #define TEMPLATE_TYPE_MX    4
  106. #define TEMPLATE_TYPE_STRING    5
  107. #define TEMPLATE_TYPE_INTEGER    6
  108. #define TEMPLATE_TYPE_SLIDER    7
  109. #define TEMPLATE_TYPE_SCROLLER    8
  110. #define TEMPLATE_TYPE_CYCLE    9
  111. #define TEMPLATE_TYPE_COUNT    10
  112. #define TEMPLATE_TYPE_LISTVIEW    11
  113. #define TEMPLATE_TYPE_PALETTE    12
  114.  
  115. #define MAX_TEMPLATE_TYPES    13
  116.  
  117. #define FIRST_GADGET_TEMPLATE_TYPE    TEMPLATE_TYPE_BUTTON
  118.  
  119. #define TEMPLATE_FLAG_DEFAULT_NAME    (1 << 0)
  120. #define TEMPLATE_FLAG_MODIFIED        (1 << 1)
  121.  
  122.     /* Defines for template groups */
  123.  
  124. #define TEMPLATE_GROUP(tp)    (tp->tp_Type < FIRST_GADGET_TEMPLATE_TYPE ? tp->tp_Type : TEMPLATE_GROUP_GADGET)
  125.  
  126. #define TEMPLATE_GROUP_BORDER    0
  127. #define TEMPLATE_GROUP_TEXT    1
  128. #define TEMPLATE_GROUP_GADGET    2
  129.  
  130.     /* Defines for template list */
  131.  
  132. #define TEMPLATE_LIST_FLAG_CHANGED        (1 << 0)    /* template list modified */
  133. #define TEMPLATE_LIST_FLAG_RESIZING        (1 << 1)    /* enable resizing of project window */
  134. #define TEMPLATE_LIST_FLAG_BACK_FILL        (1 << 2)    /* fill background of project window */
  135. #define TEMPLATE_LIST_FLAG_RENDER_COLORS    (1 << 3)    /* use colors from render info for rendering project window */
  136. #define TEMPLATE_LIST_FLAG_DEFAULT_WINDOW    (1 << 4)    /* use default flags and dimension for project window */
  137.  
  138.     /* Defines for file requester */
  139.  
  140. #define PROJECT_LOAD_HAIL_TEXT        " Load Project "
  141. #define PROJECT_APPEND_HAIL_TEXT    " Append Project "
  142. #define PROJECT_SAVE_HAIL_TEXT        " Save Project "
  143. #define PROJECT_FILE_NAME        (DEFAULT_PROJECT_NAME ".tpl")
  144.  
  145. #define CSOURCE_SAVE_HAIL_TEXT        " Save C Source "
  146. #define CSOURCE_FILE_NAME        (DEFAULT_PROJECT_NAME ".c")
  147.  
  148.     /* Defines for edit gadgets */
  149.  
  150. #define EDIT_GADGET_OK        0
  151. #define EDIT_GADGET_DEFAULT    1
  152. #define EDIT_GADGET_SWITCH    2
  153. #define EDIT_GADGET_CANCEL    3
  154.  
  155. #define BORDER_GADGET_NAME    0
  156. #define BORDER_GADGET_TYPE    1
  157.  
  158. #define TEXT_GADGET_NAME    0
  159. #define TEXT_GADGET_TEXT    1
  160. #define TEXT_GADGET_FONT    2
  161. #define TEXT_GADGET_SIZE    3
  162. #define TEXT_GADGET_TYPE    4
  163. #define TEXT_GADGET_BOLD    5
  164. #define TEXT_GADGET_ITALIC    6
  165. #define TEXT_GADGET_UNDERLINED    7
  166. #define TEXT_GADGET_COLOR2    8
  167. #define TEXT_GADGET_COMPLEMENT    9
  168.  
  169. #define NORMAL_GADGET_NAME        0
  170. #define NORMAL_GADGET_TEXT        1
  171. #define NORMAL_GADGET_FONT        2
  172. #define NORMAL_GADGET_SIZE        3
  173. #define NORMAL_GADGET_POS        4
  174. #define NORMAL_GADGET_DISABLED        5
  175. #define NORMAL_GADGET_NO_BORDER        6
  176. #define NORMAL_GADGET_HIGHCOMP        7
  177. #define NORMAL_GADGET_HOTKEY        8
  178. #define NORMAL_GADGET_COLOR2        9
  179.  
  180. #define TEXT_POS_LEFT        0
  181. #define TEXT_POS_RIGHT        1
  182. #define TEXT_POS_ABOVE        2
  183. #define TEXT_POS_BELOW        3
  184. #define TEXT_POS_INSIDE        4
  185.  
  186. #define GADGET_TEXT_POS_MASK(flags)    (flags & (GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_TEXT_RIGHT | GADGET_DATA_FLAG_TEXT_ABOVE | GADGET_DATA_FLAG_TEXT_BELOW))
  187.  
  188.     /* Defines for load file */
  189.  
  190. #define LOAD_MODE_NORMAL    0
  191. #define LOAD_MODE_APPEND    1
  192.  
  193.     /* Defines for text list editor modes */
  194.  
  195. #define LIST_MODE_EDIT        0
  196. #define LIST_MODE_ADD        1
  197. #define LIST_MODE_INSERT    2
  198. #define LIST_MODE_DELETE    3
  199.  
  200.     /* Structures */
  201.  
  202. struct Box {
  203.     SHORT    bo_X1;
  204.     SHORT    bo_Y1;
  205.     SHORT    bo_X2;
  206.     SHORT    bo_Y2;
  207. };
  208. struct Dimension {
  209.     USHORT    dim_Width;
  210.     USHORT    dim_Height;
  211. };
  212. struct Template {
  213.     struct Node        tp_Node;        /* ln_Name points to tp_Name */
  214.     UBYTE    tp_Type;            /* type for this template */
  215.     UBYTE    tp_Flags;
  216.     USHORT  tp_GroupEntryNum;        /* ordinal number of group entry in template list -> used for default name */
  217.     struct Box         tp_Box;
  218.     struct TextAttr    tp_TextAttr;
  219.     struct List       tp_TextList;     /* list for MX, Cycle und ListView template texts */
  220.     union {
  221.         struct BorderData  tp_BorderData;
  222.         struct TextData    tp_TextData;
  223.         struct GadgetData  tp_GadgetData;
  224.     } tp_Data;
  225.     ULONG    tp_DataEnd;            /* needed for data end marker ISUP_DATA_END */
  226.     struct Template  *tp_PrevLocked;    /* ptr to previous locked template */
  227.     struct Template  *tp_NextLocked;    /* ptr to next locked template */
  228.     BYTE    tp_TemplateName[MAX_TEMPLATE_NAME_LEN + 1];
  229. };
  230. struct TemplateList {
  231.     struct List  tl_List;
  232.     USHORT    tl_ListEntries;
  233.     USHORT    tl_BorderTemplates;
  234.     USHORT    tl_TextTemplates;
  235.     USHORT    tl_GadgetTemplates;
  236.     USHORT    tl_Flags;
  237.     BYTE    tl_ProjectName[MAX_PROJECT_NAME_LEN + 1];
  238. };
  239. struct FileData {
  240.     BPTR    fd_Handle;
  241.     BYTE    *fd_ReadBuffer;
  242.     BYTE    *fd_CurrentPtr;
  243.     BYTE    *fd_EndPtr;
  244.     BYTE    *fd_LineBuffer;
  245.     BYTE    fd_CurrentLine;
  246.     USHORT    fd_Status;
  247. };
  248.